<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>修改密码</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="/static/admin/layuimini/lib/layui-v2.5.5/css/layui.css" media="all">
    <link rel="stylesheet" href="/static/admin/layuimini/css/public.css" media="all">
    <style>
        .layui-form-item .layui-input-company {
            width: auto;
            padding-right: 10px;
            line-height: 38px;
        }
    </style>
</head>
<body>
<div class="layuimini-container">
    <div class="layuimini-main">

        <div class="layui-form layuimini-form">
            <div class="layui-form-item">
                <label class="layui-form-label required">旧密码</label>
                <div class="layui-input-block">
                    <input type="password" name="oldPassword" lay-verify="required" lay-reqtext="旧密码不能为空"
                           placeholder="请输入旧密码" value="" class="layui-input">
                    <tip>填写自己账号的旧的密码</tip>
                </div>
            </div>

            <div class="layui-form-item">
                <label class="layui-form-label required">新密码</label>
                <div class="layui-input-block">
                    <input type="password" name="newPassword" lay-verify="required|newPassword" lay-reqtext="新密码不能为空"
                           placeholder="请输入新的密码" value="" class="layui-input">
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label required">确认密码</label>
                <div class="layui-input-block">
                    <input type="password" name="againPassword" lay-verify="required|againPassword"
                           lay-reqtext="新的密码不能为空"
                           placeholder="请再次输入新的密码" value="" class="layui-input">
                </div>
            </div>

            <div class="layui-form-item">
                <div class="layui-input-block">
                    <button class="layui-btn" lay-submit lay-filter="saveBtn">确认修改</button>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="/static/admin/layuimini/lib/layui-v2.5.5/layui.js" charset="utf-8"></script>
<script src="/static/admin/layuimini/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@9"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.19.2/axios.js"></script>
<script>
    layui.use(['form', 'miniTab'], function () {
        var form = layui.form,
            layer = layui.layer,
            miniTab = layui.miniTab,
            $ = layui.$;

        //表单验证
        form.verify({
            newPassword: function (value) {
                let pattern = /^[a-zA-Z0-9_-]{6,16}$/;
                if (!pattern.test(value)) {
                    return '密码为6-16位（字母，数字，下划线，减号）的组合';
                }
                let oldPassword = $('input[name="oldPassword"]').val();
                if (value === oldPassword) {
                    return '新旧密码一致';
                }
            },
            againPassword: function (value) {
                let newPassword = $('input[name="newPassword"]').val();
                if (value !== newPassword) {
                    return '两次输入的密码不一致';
                }
            }
        });

        //监听提交
        form.on('submit(saveBtn)', function (data) {
            data.field.userId = localStorage.getItem("userId");
            axios({
                method: 'put',
                url: '/admin/user/password',
                data: data.field,
                headers: {
                    'X-Requested-With': 'XMLHttpRequest'
                },
            }).then((response) => {
                Swal.fire({
                    icon: 'success',
                    title: '修改成功，请重新登录',
                    showConfirmButton: false,
                    timer: 1500,
                    onClose: () => {
                        axios({
                            method: 'post',
                            url: '/admin/logout',
                        }).then((response) => {
                            window.location = '/admin/login.html';
                        })
                    }
                });
            }).catch((error) => {
                Swal.fire({
                    icon: 'error',
                    title: '修改失败！',
                    text: ` ${error.response.data.message}`,
                });
            })
            return false;
        });

    });
</script>
</body>
</html>